/*****************************************************************************
 *                                                                           *
 *   Copyright (C) 2010 by Luca Cireddu                                      *
 *                         luca@lucacireddu.it                               *
 *                         http://www.lucacireddu.it                         *
 *                                                                           *
 *   This program is free software; you can redistribute it and/or modify    *
 *   it under the terms of the GNU General Public License as published by    *
 *   the Free Software Foundation; either version 2 of the License.          *
 *                                                                           *
 *   This program is distributed in the hope that it will be useful,         *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           *
 *   GNU General Public License for more details.                            *
 *                                                                           *
 *   You should have received a copy of the GNU General Public License       *
 *   along with this program; if not, write to the                           *
 *   Free Software Foundation, Inc.                                          *
 *   51 Franklin Street, Fifth Floor                                         *
 *   Boston, MA  02110-1301, USA.                                            *
 *                                                                           *
 *****************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

#include "common.h"
#include "ngexit.h"
#include "filesutils.h"
#include "defines.h"

void removeFile(char *input)
{
    FILE *ptr;

    ptr = fopen(input, "r");

    if(ptr != NULL) {
        fclose(ptr);
        unlink(input);
    }
}

void copyFile(char *input_filename, char *output_filename)
{
    FILE *from, *to;
    char ch;

    from = fopen(input_filename, "r");
    to = fopen(output_filename, "w");

    while(!feof(from)) {
        ch = fgetc(from);
        fputc(ch, to);
    }

    fclose(from);
    fclose(to);
}

void copyFileBinary(char *input_filename, char *output_filename)
{
    FILE *from, *to;
    unsigned char ch;

    from = fopen(input_filename, "rb");
    to = fopen(output_filename, "wb");

    while(!feof(from)) {
        fread(&ch, 1, 1, from);
        fwrite(&ch, 1, 1, to);
    }

    fclose(from);

    fflush(to);
    fclose(to);
}
